package Testes;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;

import DAO.DisciplinaDaoImplArquivo;
import DAO.ProfessorDaoImplArquivo;
import DAO.TurmaDaoImplArquivo;
import Pojo.Turma;
import Pojo.Turma;

public class TurmaDaoImplArquivoTest {

	@Test
	public void insercaoNaListaDaCerto() throws Exception{
		Turma turma = new Turma(1,1992, 13, "ctan","4-6",60,false);
		assertEquals(true, new TurmaDaoImplArquivo().adicionarTurma(turma));
	}
	
	@Test
	public void insercaoNaListaDuplicadoDaErrado() throws Exception{
		Turma turma = new Turma(1,1992, 13, "ctan","4-6",60,false);
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		turmaDao.adicionarTurma(turma);
		assertEquals(false, turmaDao.adicionarTurma(turma));
	}

	@Test
	public void insercaoNaListaMesmoIdDaErrado() throws Exception{
		Turma turma = new Turma(1,1992, 13, "ctan","4-6",60,false);
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		turmaDao.adicionarTurma(turma);
		turma = new Turma(1,1994, 12, "ctão","4-6",50,false);
		assertEquals(false, turmaDao.adicionarTurma(turma));
	}

	@Test
	public void remocaoNaListaDaCerto() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		Turma turma = new Turma(2,1992, 13, "ctan","4-6",60,false);
		assertEquals(true,turmaDao.removerTurma(turma));
	}
	
	@Test
	public void remocaoDeTurmaQueNaoExisteDaErrado() throws Exception{
		Turma turma = new Turma(22,1992, 13, "ctan","4-6",60,false);
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		turmaDao.adicionarTurma(turma);
		turma = new Turma(23,1992, 13, "ctan","4-6",60,false);
		turmaDao.adicionarTurma(turma);
		turma = new Turma(24,1992, 13, "ctan","4-6",60,false);
		assertEquals(false,turmaDao.removerTurma(turma));
	}
	
	@Test	
	public void procurarTurmaPorProfessorNaListaDaCerto() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		List<Turma> lista = turmaDao.procurarPorProfessor(1);
		assertNotSame(0, lista.size());
	}
	
	@Test	
	public void procurarTurmaPorProfessorNaListaDaErrado() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		List<Turma> lista = turmaDao.procurarPorProfessor(47);
		assertEquals(0, lista.size());
	}
	
	@Test	
	public void procurarTurmaPorIdNaListaDaCerto() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		Turma turma = turmaDao.pesquisarPorId(1);
		assertNull(turma);
	}
	
	@Test	
	public void procurarTurmaPorIdNaListaDaErrado() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		List<Turma> lista = turmaDao.procurarPorProfessor(47);
		assertEquals(0, lista.size());
	}
	
	@Test	
	public void procurarTurmaPorDisciplinaAnoPeriodoNaListaDaCerto() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		List<Turma> lista = (List<Turma>) turmaDao.pesquisarPorDisciplinaAnoPeriodo(1,1992,6);
		assertNotSame(0, lista.size());
	}
	
	@Test	
	public void procurarTurmaPorPorDisciplinaAnoPeriodoNaListaDaErrado() throws Exception{
		TurmaDaoImplArquivo turmaDao = new TurmaDaoImplArquivo();
		List<Turma> lista = turmaDao.pesquisarPorDisciplinaAnoPeriodo(47,2013,4);
		assertEquals(0, lista.size());
	}
	
}
